前兩篇介紹與實作完基本的網路攻擊及漏洞利用,今天就先不談論網路的內容,來講一下一個也是非常常見的攻擊手法:注入式攻擊(Injection),他就像是一種魔法,能夠讓資料庫無法隱藏任何秘密。
用白話文來說,注入式攻擊就是攻擊者將一些程式相關語句輸入至應用程式的輸入區,若今天輸入區沒做好內容的防範,就有可能被程式誤導,輸出本應保密的內容。
網址:https://web.ctflearn.com/web4/
這是一個可以方便我們測試的一個資料庫,裡面已經存在了一些資料,不需要我們再花時間建資料庫。
可以從資訊得知,他的語句是從webfour.webfour 找出輸入的名字,我們可以輸入像是Luke、Eric這些名字來看他們的data
輸入1' OR '1'='1 這段主要是為了將name = true,由於 1=1 永遠為真,這會使整個 WHERE 條件成立,即使沒有任何 name 欄位等於 1 的記錄,整個查詢仍然會返回資料表中的所有記錄。
通常現在的關聯式資料庫都會將結構資訊像是資料表、欄位、索引之類的內容放置在INFORMATION_SCHEMA中,所以我們可以輸入
'UNION SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS#
便可查詢這些資料
也可以輸入
'UNION SELECT @@version,database()#
來查詢版本,方便我們查找該版本的漏洞